#include <iostream>
#include <signal.h>
#include <unistd.h>
using namespace std;

void handler(int signo)
{
    cout << "信号抵达：" << signo << endl;
}

int main()
{
    cout << "pid: " << getpid() << endl;
    signal(2, handler);
    signal(40, handler);

    sigset_t block;
    sigemptyset(&block);
    sigaddset(&block, 2);
    sigaddset(&block, 40);

    sigprocmask(SIG_SETMASK, &block, nullptr);
    while(true)
    {
        cout << "love" << endl;
        sleep(1);
    }

    return 0;
}

// void sigcb(int signo)
// {
//     cout << "sigcb: " << signo << endl;
// }

// int main()
// {

//     struct sigaction act;
//     act.sa_handler = sigcb;
//     sigemptyset(&act.sa_mask);
//     act.sa_flags = 0;

//     sigaction(SIGINT, &act, nullptr);

//     while(true)
//     {
//         cout << "恋爱循环" << endl;
//         sleep(1);
//     }

//     return 0;
// }

// int main()
// {

//     signal(SIGINT,sigcb);
//     cout << "pid: " << getpid() << endl;

//     while(true)
//     {
//         cout << "恋爱循环" << endl;
//         sleep(1);
//     }

//     return 0;
// }